package ar.edu.frba.utn.dds.Companias;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;

import ar.edu.frba.utn.dds.Compania.Compania;

import ar.edu.frba.utn.dds.Excepciones.CodigoErroneoException;
import ar.edu.frba.utn.dds.Excepciones.EstadoErroneoException;

public class LanchitaMock extends Compania {
	public LanchitaMock(String[][] asientos){
		this.asientos=asientos;
	}
	
	
	public String[][] asientosDisponibles(String origen, String destino,
			String fechaSalida, String horaSalida, String fechaLlegada,
			String horaLlegada) {

		List<String[]> disponibles = Arrays.asList(this.getAsientos());
		List<String[]> retVal = new ArrayList<String[]>();
		Iterator<String[]> iterator = disponibles.iterator();

		while (iterator.hasNext()) {
			String[] element = iterator.next();
			if (element[4].equals("D")) {
				retVal.add(element);
			}
		}

		return retVal.toArray(new String[][] {});
	}

	protected int getIndiceDeAsiento(String codigo) {
		for (int i = 0; i < this.getAsientos().length; i++) {
			if (this.getAsientos()[i][0].equals(codigo)) {
				return i;
			}
		}

		throw new CodigoErroneoException(codigo);
	}
	@Override
	public void comprar(String codigo) {
		String[] asiento = this.getAsientos()[this.getIndiceDeAsiento(codigo)];

		if (asiento[4].equals("C") || asiento[4].equals("R")) {
			throw new EstadoErroneoException();
		}

		asiento[4] = "C";
	}
}

